____ _ _ _ _
| _ \ ___ | |_ (_) _ __ ___ __| | (_) __ _
| |_) | / _ \ | __| | | | '_ \ / _ \ / _| | | | / _ |
| _ < | __/ | |_ | | | |_) | | __/ | (_| | | | | (_| |
|_| \_\ \___| \__| |_| | .__/ \___| \__,_| |_| \__,_|
|_|
- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b
¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
Trigraph
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
top
Ein Trigraph ist ein Graph, der aus einer Folge von drei Glyphen besteht und in Sprachwissenschaften ein Phonem bzw. in Programmiersprachen ein anderweitig möglicherweise schwierig eingebbares oder darstellbares Zeichen repräsentiert.
Contents
• Weblinks
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
Sprachwissenschaft
Als Trigraph bezeichnet man in der Sprachwissenschaft eine Kombination aus drei Buchstaben, die phonetisch als Einheit behandelt werden und einen einzelnen Laut repräsentieren, wie beispielsweise im Deutschen der Trigraph „sch“.
Programmiersprache C
Die Programmiersprache C verwendet nahezu den kompletten ASCII-Zeichensatz.cite-ref-1[1]cite-ref-2[2] Das konnte bis in die 1980er Jahre zu folgenden Problemen führen:
• Manche Zeichen können bei vielen seinerzeit gebräuchlichen nicht-US-amerikanischen Tastaturbelegungen nicht oder nur umständlich über die Tastatur eingegeben werden.
Darum wurden in C neun Drei-Zeichen-Sequenzen definiert, die als Trigraphen bezeichnet werden. Sie beginnen alle jeweils mit ??, gefolgt von einem weiteren Zeichen:
| Trigraph | ersetztes Zeichen |
|---|---|
| ??= | # |
| ??/ | \ |
| ??' | ^ |
| ??( | [ |
| ??) | ] |
| ??! | / |
| ??< | { |
| ??> | } |
| ??- | ~ |
Die neun Trigraphen werden vor jedem anderen Verarbeitungsschritt und überall im Programmtext durch die entsprechenden einfachen Zeichen ersetzt – insbesondere auch in Zeichen- und Zeichenketten-Konstanten:
puts("Bitte Kennnummer eingeben (im Format ??-???-??)");
Die Ausgabe ist dann:
Bitte Kennnummer eingeben (im Format ~?~]
wegen der Ersetzungen der Trigraphen ??- und ??) in der Zeichenkette.
Seit Ende der 1980er Jahre besteht keine Notwendigkeit mehr zur Verwendung von Trigraphen in C, da auf Tastaturen heutzutage alle Sonderzeichen vorhanden sind und sich ASCII bzw. Unicode als Standard etabliert haben.
Programmiersprache C++
Aufgrund der schlechten Lesbarkeit im Quellcode und der Problematik, dass sie auch in Kommentaren und Zeichenkettenkonstanten wirksam sind, wurden in C++ sogenannte Digraphen und „alternative Schreibweisen“ (als eigene Schlüsselwörter) für manche Operatoren eingeführt, die ebenfalls die kritischen Zeichen vermeiden. Im Gegensatz zu den Trigraphen haben Digraphen und alternative Schreibweisen nur dort ihre spezielle Bedeutung, wo ein Token erwartet wird.
Siehe auch
Weblinks
Wiktionary: Trigraph
– Bedeutungserklärungen, Wortherkunft, Synonyme, Übersetzungen
Einzelnachweise
cite-note-11. ↑ British Standards Institute (Hrsg.): The C Standard – Incorporating TC1 – BS ISO/IEC 9899:1999. John Wiley & Sons, 2003, ISBN 0-470-84573-2, 5.2.1.1.
cite-note-22. ↑ Rationale für C99, Revision 5.10. (PDF; 898 kB) Abgerufen am 17. Oktober 2010 (englisch, Abschnitt 5.2.1.1).
cite-note-44. ↑ ISO/IEC 9899:2024 (en) — N3220 working draft — Information technology — Programming languages — C. open-std.org, 2024, abgerufen am 10. Oktober 2024.
cite-note-55. ↑ C language – Alternative operators and tokens. In: cppreference.com. Abgerufen am 10. Oktober 2024.
cite-note-66. ↑ en.cppreference.com